18
תגובות

צ'אט בphp ו jquery

פתח phpguide1 ,
אני רוצה לבנות צ'אט, לבינתיים יצרתי 2 דפים
דף 1: יש בו טופס עם דיב(שם יוצגו ההודעות).
דף 2: מכיל קוד PHP שמכניס את ההודעה למסד.

בלחיצת כפתור(אנטר)בטופס שבדף הראשון > אני קורא לדף השני ע"י הפונקצייה post.$, ומעביר לשם את הערך מהאינפוט(את ההודעה) וזה נכנס למסד בלי רענון.
עד כאן הכל טוב.
עכשיו אני שואל אותכם - איך להתקדם הלאה?
כלומר, הקוד ששולף את ההודעות מהמסד הוא יהיה בדף נפרד (דף מספר 3) ?
איך לשלוף את ההודעות שזה יצא - הודעה חדשה נכתבת מתחת להודעה הקודמת(כמו כל צ'אט)
תודה

18 תשובות

avatar ענה intval ב 30 לאוגוסט 2012 #

כן. דף 3 לקבלת נתונים.
איך להכניס את הנתונים האלה במקום מסוים בעמוד - תצטרך לבדוק בדוקומנטציה של javascript/jquery.
מה שאני ממליץ לך לחשוב עליו לבד, הוא איך לעשות ככה שלא תקבל כל פעם מדף 3 את כל החמש מאות הודעות האחרונות שיש בצ'אט, אלה רק את ההודעות החדשות.

avatar ענה phpguide1 ב 31 לאוגוסט 2012 #

ע"י סשן:
שהגולש נכנס לעמוד בפעם הראשונה אני שולף את ה10 הודעות האחרונות (בPHP ללא AJAX).
ומכניס לסשן את הID של ההודעה האחרונה שהוא ראה.

עכשיו בכל פעם שאני שולף הודעות לגולש (ע"י AJAX) אז אני שולף רק את ההודעות שהID שלהם גדול מהסשן(ע" WHERE ).

avatar ענה intval ב 31 לאוגוסט 2012 #

מעולה :) כל הכבוד

avatar ענה itamarhadad ב 03 לספטמבר 2012 #

אני לא מבין למה אתם משתמשים בJQUERY..
קודם כל זה איטי ודבר שני זה קובץ שלם נוסף להורדה
אני עשיתי עד היום הכל בJS בלבד ובניתי אפילו צאט בJS לבד אז מה ההתפנקות הזאת כל הזמן לעבוד עם JQUERY תצאו מזה זה סתם איטי ולא יעיל..

avatar ענה iiddaannyy ב 03 לספטמבר 2012 #

זה לא איטי. זה js ולא איזו שפה חדשה. מה שבטוח - הקוד שם הוא ברמה גבוהה והפונקציות שם ממומשות בצורה מצוינת.
בנוגע לקובץ שלם להורדה - אז? זה ממש לא מורגש.
העבודה ב-jquery היא קלה יותר, נוחה יותר, קריאה הרבה יותר, פשוטה יותר וקרוב לוודאי שהקוד שירוץ בסופו של דבר יהיה עדיף על פני כל קוד אחר שהיית מממש (כל מקרה לגופו).
ב-jquery אתה לא צריך לדאוג יותר מידי לדפדפנים השונים, את התאימות עם הדפדפנים השונים עשו כבר בפונקציות השונות.

אם אתה כל כך דואג ליעילות ולא רוצה "להתפנק" אז תעזוב הכל ותעבור ל-asm או לבינארי.

avatar ענה itamarhadad ב 03 לספטמבר 2012 #

חחחחחחח אתה כבר מכיר אותי עידן זה לא שווה
אבל במילה אחת אתה יודע שאתה משתמש בJQUERY מעצלנות
אני עושה הכללללל בJS לבד!
תאמין לי שאם הדפדפנים לא הוסיפו את זה ,זה כי אין סיבה וJQUERY זה בנוי מJS אז למה לעבוד עם החרא הזה
עשיתי עם JS הכל אפילו פונקציות שהיו קיימות רק JQUERY יצרתי לבד בJS
אז תגיד פשוט ככה אני מתעצל לחפש וללמוד JS כמו שצריך ואני משתמש בJQUERY בגלל שזה יותר קל להבנה ולא צריך ללמוד הרבה
שכל אחד יגיד לעצמו את זה!

avatar ענה iiddaannyy ב 03 לספטמבר 2012 #

אתה יודע שאתה משתמש ב-php מעצלנות. היא איטית נורא יחסית ל-asm.
תגיד פשוט ככה: "אני מתעצל ללמוד asm ואיך הזכרון והמעבד עובדים כמו שצריך ואני משתמש ב-php בגלל שזה קל להבנה ולא צריך ללמוד הרבה".

----------------------------------------

אני משתמש ב-jquery בגלל הנוחות, הפשטות, בגלל התאימות של זה עם הדפדפנים, בגלל כל כאב הראש שזה חוסך.
תאמין לי שזה לא בא על חשבון ידע ב-javascript. זה לא קשור אחד לשני. אם אתה לא יודע javascript אתה לא תדע איך לעבוד עם jquery.
אתה יכול לסמוך עליי שלמדתי javascript כמו שצריך ואפילו דאגתי לכתוב כמה מאמרים קצרים בנושא כדי להעביר את הידע למי שלא כל כך מתמצא באנגלית או שפשוט לא מכיר את js כל כך.

הדפדפנים לא הוסיפו את זה כי זה פריימוורק. יש כל כך הרבה פריימוורקים - מה יוסיפו?
jquery זו לא שפה חדשה, ככה שאין צורך "להוסיף אותה". jquery = javasctipt. אין שם שום דבר חדש חוץ מספרייה עשירה בפונקציות שימושיות ונוחות.

עשית הכל ב-js מבלי להשתמש בפריימוורק - יופי. מה עכשיו? מה יקרה כשתרצה לשנות כמה דברים? מה יקרה כשתגלה שפתאום זה לא עובד באיזה דפדפן?
עם jquery אין לך את כאב הראש הזה, יש לך סלקטורים של css - אין משהו יותר נוח מזה, הקוד ממש ממש קריא ולכן גם אפשר לשנות אותו בקלות. וכמובן - עובד בכל הדפדפנים המודרניים. אין לך מה לדאוג בנושא הזה.

אין צורך להמציא את הגלגל מחדש. אין צורך לכתוב מחדש פונקציות שכבר נכתבו.
ושוב, קרוב לוודאי שהקוד שאתה כתבת הוא פחות טוב מהקוד שכתוב ב-jquery.

avatar ענה iiddaannyy ב 03 לספטמבר 2012 #

ודרך אגב - גם phpguide כתוב בפריימוורק (של php). אין בזה שום דבר רע - להפך.
זה חוסך המון כאב ראש וזה ממש לא אומר שאתה יודע php ברמה נמוכה יותר.

avatar ענה intval ב 03 לספטמבר 2012 #

אתה גם הולך לבלות לתל אביב ברגל כי מי שנוסע ברכב עושה את זה מעצלנות?

אני משתמש ב jquery, yii וכל הספריות האחרות מתוך עצלנות.
תנסה גם, זה משאיר לך פחות מקום לעשות טעיות, להיות בפוקוס על המטרה הסופית וזמן לאכול גלידה עם החברים אחרי העבודה. ככה שבזמן שאתה בונה צ'אט ב JS אני בונה 3 צ'אטים והולך לשחק פינג-פונג.

חוץ מזה אתה לא משתמש ב jQuery גם מתוך עצלנות. צריך ללמוד אותו, וזה לא כזה פשוט ללמוד משהו. צריך להשקיע מאמצים ואתה מתעצל. ככה שתהנה עם הצ'אט, אבל אני ועידן הולכים לשחק פינג-פונג.

avatar ענה itamarhadad ב 03 לספטמבר 2012 #

תגידו מה שתגידו עובד לי מעולה בדקתי בכל הדפדפנים אני מודה שהדבר היחידי שלא הצלחתי לעשות בJS
שהיה בJQUERY זה האפקטים שיש שם זה שורה כל כך קצרה ואני זוכר את זה ("FADE") או כל דבר אחר וזהו פשוט יש לך אפקט זה נקרא לא להתאמץ
אני בניתי בPHP בלי שום תוסף או איזה משהו וזה בדיוק הקטע המון משתמשים בJQUERY אני לא ומי שמבין יידע ששימוש במקור כל עוד אפשר זה הכי טוב

ובנוגע למה שאמרת ..
אתה בחיים לא תדע איך לבנות צאט בJS או לפתח משהו בLONG PULLING בJS בלבד או לעשות SCROLL בJS לבד אם לא תנסה
אני לא אשקר זה קשה כל פעם מחדש אני צריך לחפש משהו בגוגל מלא פעמים עד שאני מגיע לתוצאה של JS בלבד וזה לא קורה הרבה
למשל עשיתי גם עוד משהו שמזהה אם חפץ הוא בפוקוס או לא
לא התלחתי למצוא JS ONLY אז חשבתי טיפה.. ויצרתי משהו אחר
יכולתי לעשות את זה:

var window_focus;

$(window).focus(function() {
    window_focus = true;
})
    .blur(function() {
        window_focus = false;
    });

$(document).one('click',function() {
   setInterval(function() { $('body').append('has focus? ' + window_focus + '<br>'); }, 1000);
});

אך בסוף עשיתי את זה
var window_focus=true;
window.onblur=function(){window_focus=true;}
window.onfocus=function(){window_focus=false;}

מה רע בזה??
ושעוד לא נדבר על זה שהדפדפן מוריד קובץ ענננקקקק כל פעם... זה מאיט את האתר

avatar ענה OrelBeY ב 03 לספטמבר 2012 #

itamarhadad, הדפדפן לא יצטרך להוריד את הקובץ בכל פעם מחדש, כי ככל הנראה הוא ישמור אותו בזיכרון המטמון. מלבד זאת, אם אתה מתכוון לזמן הביצוע של הקוד בקובץ - במחשבים של היום (ועם הדפדפנים של היום) זה בלתי מורגש, או כמעט בלתי מורגש.

avatar ענה intval ב 03 לספטמבר 2012 #

נסיים בזה שאני, כנראה, הוכחה חייה לזה שהתאוריה שלך טיפה שגויה
בגלל שאני יודע לפתח צ'אט (איזה קטע) בלונג פולינג ובעוד כמה דרכים עם JS נקי.
(ואתה יכול להיות בטוח שגם עידן יודע)

avatar ענה iiddaannyy ב 03 לספטמבר 2012 #

"(ואתה יכול להיות בטוח שגם עידן יודע)"
אני מאמת את זה.

תהיה בטוח שכל פונקצייה שיש ב-jquery אני יודע ליישם בעצמי (ואני בטוח שגם אלכס D: ). אבל אני מעדיף להשתמש במשהו מוכן, שידוע שהוא כתוב טוב ושהוא יחסוך לי הרבה זמן וחיפושים בגוגל.


לסיכום - אין טעם לפחד מפריימוורקים. הם באים לעשות את החיים שלך יותר קלים. אין טעם לעשות משהו בלי שום פריימוורק רק כדי להוכיח לעצמך ולאחרים ש-"הנה, עשיתי את הכל לבד". פריימוורקים טובים יחסכו לך המון כאבי ראש וטעויות שטותיות.
ואחרי הכל, תזכור שאנחנו תמיד מתבססים על משהו שאחרים עשו. אתה משתמש ב-js וב-php שאנשים אחרים כתבו. זה מתבסס על שפות נמוכות יותר, כמו c או c++ לדוגמה וכו' וכו' כך עד למעבד ולרכיבים האלקטרוניים שלו.
המטרה היא לשפר את מה שקיים ולא להתחיל כל דבר מ-0. :)

avatar ענה itamarhadad ב 03 לספטמבר 2012 #

אוקי..
איך אתה מסביר את העובדה שאתה עובד עם JQUERY..??
המטרה שלי היא להתחשל מידי פעם ולעלות דרגה ולהבין מה אני עושה
ולמי שאמר שזה נשמר במטמון צודק אבל אני מדבר על טעינה ראשונית
דבר שני JS זה דבר איטי מאודדדדד כולם יודעים את זה..
רק ספארי היחידה שיצרה מנוע מהיר מאוד לJS שמשפר בהרבה את זמן הטעינה NITRO JS אבל לכל השאר יהיה עדיף אם השימוש יעשה בJS נקי
למשל באייפון 4 כשאני מעלה אתרי JQUERY זה איטי בהשוואה ל4S
באייפון 4S זה פחות מורגש אבל כשחושבים על זה זה
אם זה באייפון 4 זה ירוץ מהר אזי שב4S הקוד יורץ פי 2 יותר מהר
היחס בניהם נשמר לקבוע כלומר למשל לאייפון 4 לוקח שעה ול4S חצי שעה וכן הלאה

קיצר חבל להתווכח סתם בעצמכם אמרתם
"ככה שבזמן שאתה בונה צ'אט ב JS אני בונה 3 צ'אטים והולך לשחק פינג-פונג."
יש הבדל בפלט יכול להיות שנינו בונים צאט אבל הצאט שנבנה במקרה הזה בזמן T*3 זה צאט טוב יותר..
ומהיר יותר
חוץ מזה שזמן המחזוריות שלך על בניית הקוד היא חד פעמית ככה שכשאתה מסיים לבנות את הקוד אז הוא מורץ לאינסוף פעמים במחשבים אחרים אבל הבניה נעשית לכל היותר פעם אחת

avatar ענה iiddaannyy ב 03 לספטמבר 2012 #

ההבדל בין קוד שמשתמש ב-jquery לבין קוד שלא משתמש בשום פריימוורק הוא לא מורגש מבחינת מהירות.

-----------------------

הצ'אט שאתה תבנה בפי 3 זמן ממש לא יהיה טוב יותר. להפך - שלי ושל אלכס יהיה טוב יותר. הקוד שלנו קצר יותר וקריא יותר. קל מאוד לערוך אותו ולשנות אותו. הסיכוי לשגיאות ולתוצאות לא צפויות הוא אפסי לעומת הצ'אט שלך.
וגם זמן בניית הקוד הוא דבר מאוד חשוב, גם במקרים נדירים בהם כותבים פעם אחת וזהו.
וזה לא נכון להגיד שהבנייה נעשית לכל היותר פעם אחת. הבנייה היא שטויות. היא החלק הפשוט בכל העניין. זה לא החלק שמהווה את הבעיה המשמעותית.
הבעיה היא התחזוקה של הקוד. כשאני ארצה לשנות משהו אני אעשה את זה בקלות יחסית ולא אבזבז המון זמן על להבין מה כל דבר אומר.
וצריכים גם לקחת בחשבון שלפעמים כותבים דברים לא רק לעצמנו. כותבים דברים שאנים אחרים יצטרכו לערוך אותם. אז במקום לכתוב קוד שלא לגמרי ברור עם js ללא פריימוורקים ואחר כך להסביר בטלפון לאנשים אחרים מה כל דבר עושה כדי שהם יצליחו לערוך את הקוד לפי צרכיהם, אפשר פשוט להשתמש בפריימוורק שכולם מכירים, שצורת הכתיבה שלו היא ברורה ומובנת וכשבאים לערוך את הקוד אז עושים את זה בקלות.

זה נכון שקוד js "טהור" ירוץ מעט מהר יותר (גם זה לא תמיד, כי ברוב המקרים הקוד שנכנתב הוא קוד לא טוב במיוחד והקוד המקביל לו בפריימוורק הוא הרבה יותר טוב).
אבל יש עוד הרבה פרמטרים אחרים, כמו קריאות הקוד, זמן הפיתוח, קלות הפיתוח, גמישות וכמובן תחזוקת הקוד.
ההבדל של כמה אלפיות השנייה לא מזיז לאף אחד. לעומת זאת, קוד קצר, קריא וברור מהווה יתרון ענק על קוד ארוך שלא תמיד ברור.

avatar ענה itamarhadad ב 03 לספטמבר 2012 #

אוי נו עכשיו זה כבר שטויות אני מבין את מה שאני כותב ומריץ
ומי שלא מבין בעייתו
ד"א הקוד שלי של הצאט נורא פשוט ומובן רק שהוא בJS בלבד
הצאט שלי רץ מהר עובד מהר
אני משתמש בכלים של כרום כדי לבדוק את האתר ואני רוצה תוצאות חיוביות
אתם חייבים להבין שמהירות זה דבר חשוב מאוד לאנשים אין הרבה שניות לבזבז על אתר מסוים זה מצחיק ואירוני אך זו האמת יש לך 5 שניות במומצע להספיק לשכנע אותם להישאר באתר וזאת כל עוד הוא יעלה בפחות מ3 שניות
וכן אני מדבר על טעינה ראשונית..
כל פעם כשהקוד יואץ התעבורה תקטן ותכיל יותר משתמשים PER חודש
כלומר אם האתר שלך שקל 0.5MB ועכשיו אחרי ההאצה משקלו הוא: 0.3MB
משמע שנחסכו כעט 2/5 מהאתר והחיסכון הוא חיובי ללא כל חסרונות!
לכן האופטימיזציה חשובה מאוד וכל עוד אפשר עדיף להאיץ יותר
שוב השאיפה שלנו היא ל0B אבל אין זה אפשרי 0 לכן אנחנו רק שואפים לזה זה המטרה שלי וזה מתבטא בכל הנושאים שאני שואל מלקוח לשרת וכן הלאה.

avatar ענה iiddaannyy ב 04 לספטמבר 2012 #

תעבורה היום היא זולה מאוד. בכלחבילות האחסון אתה מקבל תעבורה בלתי מוגבלת.
ואני אומר שוב ושוב - ההבדל בין הצ'אט שלי לצ'אט שלך הוא כמה אלפיות השנייה. אף אחד לא ירגיש את זה. גם אתה לא תרגיש את זה.

avatar ענה mat ב 05 לספטמבר 2012 #

אם אתה שם את הלינק ישר מהאתר של JQUERY או של גוגל סביר להניח שהוא בכלל לא יוריד את הקובץ אפילו בכניסה ראשונה לאתר. בגלל שהקובץ שלו נמצא בקאש מאתרים אחרים.

וגם אם הוא יוריד זה ממש לא מורגש אז השיקול הזה לדעתי לא שיקול.

אני עובד ככה.
שיותר קל/טוב/יעיל/מהיר ב JQUERY אני עובד ב JQUERY אם יותר טוב בלעדיו אז בלעדיו.

צריך להיות חופשי.

לתכנת לפי מה שאתה אוהב.